home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / qb2 / pro15 / rndboxes.pas < prev    next >
Pascal/Delphi Source File  |  1990-08-20  |  2KB  |  98 lines

  1. {
  2.  ******************************************************************************
  3.  * RNDBOXES - Random solid line box demo.                      *
  4.  *                                          *
  5.  * Written for GRAFIX by:  Joseph A. Albrecht                      *
  6.  *                                          *
  7.  * Press F1 to pause                                  *
  8.  * Press F2 to clear screen                              *
  9.  * Press F3 to toggle between fast and slow drawing modes              *
  10.  * Press ESC to exit program                              *
  11.  ******************************************************************************
  12. }
  13.  
  14. PROGRAM RandomBoxes;
  15.  
  16. USES
  17.   Crt,
  18.   Grafix;
  19.  
  20. VAR
  21.   Graphics, MXSize, MYSize, MaxX, MaxY, MaxColor, XSize, YSize, X, Y: INTEGER;
  22.   BoxColor: INTEGER;
  23.   EndProgram, Loop, Fast: BOOLEAN;
  24.  
  25. FUNCTION Rnd(Max: INTEGER): INTEGER;
  26.  
  27. BEGIN
  28.  
  29.  Rnd := Random(Max) + 1;
  30.  
  31. END;
  32.  
  33. PROCEDURE CheckKey;
  34.  
  35. VAR
  36.   Ch: CHAR;
  37.  
  38. BEGIN
  39.  
  40.   Ch := #255;
  41.   IF KeyPressed THEN
  42.     Ch := ReadKey;
  43.   IF Ch = #27 THEN
  44.      BEGIN
  45.        Loop := False;
  46.        EndProgram := True;
  47.      END;
  48.   IF Ch = #00 THEN
  49.     BEGIN
  50.       Ch := ReadKey;
  51.       IF Ch = #59 THEN
  52.     WaitKey;
  53.       IF Ch = #60 THEN
  54.     ClearScreen;
  55.       IF Ch = #61 THEN
  56.     IF Fast = True THEN
  57.       Fast := False
  58.     ELSE
  59.       Fast := True;
  60.     END;
  61.  
  62. END;
  63.  
  64. {Mainline}
  65. BEGIN
  66.  
  67.   MXSize := 80;
  68.   MYSize := 50;
  69.   MaxX := 319 - MXSize;
  70.   MaxY := 199 - MYSize;
  71.   MaxColor := 15;
  72.   Fast := False;
  73.   EndProgram := False;
  74.   Loop := True;
  75.   MediumGraphics;
  76.   WHILE EndProgram = False DO
  77.     BEGIN
  78.       Randomize;
  79.       WHILE Loop = True DO
  80.     BEGIN
  81.       X := Rnd(MaxX);
  82.       Y := Rnd(MaxY);
  83.       XSize := Rnd(MXSize);
  84.       YSize := Rnd(MYSize);
  85.       BoxColor := Rnd(MaxColor);
  86.       FillBox(X, Y, X + XSize, Y + YSize, BoxColor);
  87.       DrawBox(X, Y, X + XSize, Y + YSize, 0);
  88.       IF Fast = True THEN
  89.         Pause(1);
  90.       CheckKey;
  91.     END;
  92.       IF EndProgram = False THEN
  93.     Loop := True;
  94.     END;
  95.   ExitGraphics;
  96.  
  97. END.
  98.